﻿--[[--
* @Description: 释放缓存,进行热加载
* @Author:      shijiangkai
* @FileName:    ThermalLoading.lua
* @DateTime:    2020年11月5日 11:18:39
]]
require 'tablePrint' 
function reload_module(module_name)  
    -- print('module_name :', module_name)
    local typeName=type(package.loaded[module_name])
    if typeName == "table" then
        local old_module = require(module_name) -- 获取老模块 
        package.loaded[module_name] = nil -- 赋值为空 
        require(module_name) -- 加载新模块 
        local new_module = require(module_name) -- 获取新模块 
        for k, v in pairs(new_module) do -- 循环新模块中的所有属性方法等内容 
            old_module[k] = nil -- 把心模块的改变都塞给老模块
            old_module[k] = v -- 把心模块的改变都塞给老模块  
        end
        package.loaded[module_name] = old_module
        -- 最后我们再把老模块塞回来。那么引用老模块的其他模块引用的东西也就改变了 
    elseif typeName == "boolean" then
        print(module_name .. " 没有在结尾 return this ")
    else 
        print(module_name .. " 没有加载! ")
    end 
end
